package it.uniroma2.art.coda.structures;

import it.uniroma2.art.owlart.model.ARTLiteral;
import it.uniroma2.art.owlart.model.ARTNode;
import it.uniroma2.art.owlart.model.ARTResource;
import it.uniroma2.art.owlart.model.ARTURIResource;

/**
 * This class contains a triple of ARTResources representing a RDF Triple
 * 
 * @author Andrea Turbati
 * 
 */
public class ARTTriple {
	private ARTResource subject;
	private ARTURIResource predicate;
	private ARTNode object;
	private double confidence;

	/**
	 * @param subject
	 *            the subject of the triple
	 * @param predicate
	 *            the predicate of the triple
	 * @param object
	 *            the object of the triple
	 * @param confidence
	 *            the confidence value for this triple
	 */
	public ARTTriple(ARTResource subject, ARTURIResource predicate, ARTNode object, double confidence) {
		this.subject = subject;
		this.predicate = predicate;
		this.object = object;
		this.confidence = confidence;
	}


	/**
	 * Get the subject of the triple
	 * 
	 * @return the subject of the triple
	 */
	public ARTResource getSubject() {
		return subject;
	}

	/**
	 * Get the predicate of the triple
	 * 
	 * @return the predicate of the triple
	 */
	public ARTURIResource getPredicate() {
		return predicate;
	}

	/**
	 * Get the object of the triple.
	 * 
	 * @return the object of the triple
	 */
	public ARTNode getObject() {
		return object;
	}

	/**
	 * Get the confidence value
	 * 
	 * @return the confidence value
	 */
	public double getConfidence() {
		return confidence;
	}
	
}
